def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):
    print("-- This parrot wouldn't", action, end=' ')
    print("if you put", voltage, "volts through it.")
    print("-- Lovely plumage, the", type)
    print("-- It's", state, "!")
# parrot(1000)
# parrot(voltage=2000)
# parrot(voltage=1000000, action='doggy')
# parrot(action='pop',voltage=33333)
# parrot('a million', 'bereft of life', 'jump')
# parrot('a thousand', state='pushing up the daisies')


# parrot()                     # required argument missing
# 在一次函数调用中，所有的位置参数必须出现在所有的关键字参数之前。

# 一旦你使用了关键字参数（指定了参数名），后面所有的参数也必须使用关键字参数的形式
# parrot(voltage=5.0, 'ddd')  # non-keyword argument after a keyword argument 关键字参数后的非关键字参数
# parrot(110, voltage=220)     # duplicate value for the same argument
# parrot(actor='John Cleese')  # unknown keyword argument
# 函数调用时，关键字参数必须跟在位置参数后面。所有传递的关键字参数都必须匹配一个函数接受的参数